import React from 'react'
/**
 * 一、组件
 * 1、使用组件的好处
 * 1）可以让代码进行复用
 * 2）可以代码进行分割，让代码的可读性提高
 * 3）有利于团队的协作
 * 4）可以进行后期的维护
 * 2、分类
 * 1）页面组件:整个项目是由组件组成,组件是构成项目的有机的不可分割的部分：src/views  src/pages
 * 2）功能性组件:为了提高代码复用，提高企业的开发效率:src/components
 * 3、React的组件的实现
 * 在React中实现组件有两种方式
 * 1）类组件：通过使用ES6中class实现 16.8之前几乎整个项目大部分都是使用的是类组件
 * 2）函数组件:通过函数来实现：16.8之后开始逐渐使用函数组件
 *  老项目的维护：几乎使用的是类组件
 *  新项目：函数组件：主要讲函数组件
 * hooks让函数组件也可以操作状态
 * 二、ES6的类
 * 1、为什么要使用ES6的类
 * ES中如何实现面向对象编程
 * ES5通过原型和构造方法来实现面向对象
 * 由于ES5写法和别面向对象的开发语言不太一样（java,C++）
 * ES6出现了类，类的写法和java几乎一样，ES6底层还是ES5构造方法+原型的这套，ES6的类成为ES5原型的语法糖
 * 2、面向对象
 * 1）机器语言编码时代
 * 2）汇编语言：计算专业的人
 * 3）高级语言：
 *    3.1）面向过程编程
 *    3.2）面向对象编程
 * 4）核心概念
 * 类和对象-->女娲造人
 * 特征：1个头、2个胳膊、2条腿
 * 行为：吃、睡觉、劳动
 * 类：模板
 * 实例：具有自己特征、行为的客观存在，真实存在与这个世界上，你能够看的见的，你的摸得找的。
 * 
 */
export default function App() {
  //创建对象
  const p1=new Person("Giles",39);
  return (
    <div>
      <div>{p1.introduce()}</div>
    </div>
  )
}
//定义构造函数
function Person(name,age){
  this.name=name;
  this.age=age;
}
//所有方法建议放在原型上
Person.prototype.introduce=function(){
  return `我叫${this.name},今年${this.age}岁`
}

